package conf

import (
	"fmt"
	"github.com/spf13/viper"
)

// 全局配置

type AppConf struct {
	MysqlConfig
	RedisConfig
}

// Mysql数据库配置

type MysqlConfig struct {
	User     string
	Password string
	Host     string
	Port     int
	Database string
}

// Redis缓存配置

type RedisConfig struct {
	Addr     string
	Password string
	Db       int
}

// 初始化配置

var Conf AppConf

// Init 函数用于初始化配置文件，并将配置内容解析到全局变量 Conf 中
func Init() {
	viper.SetConfigFile("./conf/config.yaml") //1.设置配置文件
	err := viper.ReadInConfig()               //2.读取配置文件
	if err != nil {
		fmt.Println("配置文件读取失败")
		return
	}
	err = viper.Unmarshal(&Conf) //3.解析配置文件
	if err != nil {
		fmt.Println("配置文件解析失败")
		return
	}
	fmt.Println(Conf)
	fmt.Println("配置文件读取成功")
}
